import { IPSSysDBScheme } from '../../database/ipssys-dbscheme';
import { IPSDELogicNode } from './ipsdelogic-node';
import { IPSDELogicParam } from './ipsdelogic-param';

/**
 *
 * 继承父接口类型值[RAWSQLCALL]
 * @export
 * @interface IPSDERawSqlCallLogic
 */
export interface IPSDERawSqlCallLogic extends IPSDELogicNode {
  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get dstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 数据库体系
   *
   * @type {IPSSysDBScheme}
   */
  getPSSysDBScheme(): IPSSysDBScheme | null;

  /**
   * 数据库体系
   *
   * @type {IPSSysDBScheme}
   */
  get psSysDBScheme(): IPSSysDBScheme | null;

  /**
   * 数据库体系（必须存在）
   *
   * @type {IPSSysDBScheme}
   */
  getPSSysDBSchemeMust(): IPSSysDBScheme;

  /**
   * SQL代码
   * @type {string}
   */
  sql: string;

  /**
   * 执行结果填充目标参数
   * @type {boolean}
   * @default false
   */
  fillDstLogicParam: boolean;

  /**
   * 忽略重置目标参数
   * @type {boolean}
   * @default true
   */
  ignoreResetDstLogicParam: boolean;
}
